package org.example.domain.activity.model.valobj;


import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.example.types.common.Constants;

import java.util.Date;
import java.util.Objects;

@Getter
@Builder

@AllArgsConstructor
@NoArgsConstructor


public class GroupBuyActivityDiscountVO {
    /** 活动ID */
    private Long activityId;
    /** 活动名称 */
    private String activityName;
    /** 来源 */
    private String source;
    /** 渠道 */
    private String channel;
    /** 商品ID */
    private String goodsId;
    /** 折扣ID */
    private String discountId;
    /** 拼团方式（0自动成团、1达成目标拼团） */



    /**
     * 折扣配置
     */
    private GroupBuyDiscount groupBuyDiscount;



    private Integer groupType;
    /** 拼团次数限制 */
    private Integer takeLimitCount;
    /** 拼团目标 */
    private Integer target;
    /** 拼团时长（分钟） */
    private Integer validTime;//
    /** 活动状态（0创建、1生效、2过期、3废弃） */
    private Integer status;
    /** 活动开始时间 */
    private Date startTime;
    /** 活动结束时间 */
    private Date endTime;
    /** 人群标签规则标识 */
    private String tagId;
    /** 人群标签规则范围 */
    private String tagScope;
    /** 创建时间 */
    public boolean isVisible()
    {
        if (StringUtils.isBlank(this.tagScope))//如果人群标签为空返回true
        {
            return TagScopeEnumVO.VISIBLE.getAllow();
        }
        String[] split = this.tagScope.split(Constants.SPLIT);
        if(split.length>0 && Objects.equals(split[0],("1")))//人群标签大于0且
        {
            return TagScopeEnumVO.VISIBLE.getRefuse();
        }
        return TagScopeEnumVO.VISIBLE.getAllow();
    }

    public boolean isEnable()
    {
        if (StringUtils.isBlank(this.tagScope))
        {
            return TagScopeEnumVO.ENABLE.getAllow();
        }

        String[] split = this.tagScope.split(Constants.SPLIT);
        if(split.length==2&&"2".equals(split[1]))
        {
            return TagScopeEnumVO.ENABLE.getRefuse();
        }
        return TagScopeEnumVO.ENABLE.getAllow();
    }


    @Getter
    @Builder

    @AllArgsConstructor
    @NoArgsConstructor
    public static class GroupBuyDiscount
    {
        /**
         * 折扣标题
         */
        private String discountName;

        /**
         * 折扣描述
         */
        private String discountDesc;

        /**
         * 折扣类型（0:base、1:tag）
         */
        private DiscounTypeEnum discountType;

        /**
         * 营销优惠计划（ZJ:直减、MJ:满减、N元购）
         */
        private String marketPlan;

        /**
         * 营销优惠表达式
         */
        private String marketExpr;

        /**
         * 人群标签，特定优惠限定
         */
        private String tagId;
    }

}
